package demo1enum;

import java.sql.SQLOutput;

/**
 * Created with IntelliJ IDEA.
 * Description: 枚举类 也会独立生成一个字节码文件
 * User: 牛孟俊
 * Date: 2023-11-21
 * Time: 16:31
 *
 * RED,GREEN,BLACK 都是枚举对象
 *
 */

public enum TestEnum {
    RED(0.1,"红色"),GREEN(1.1,"绿色"),BLACK(2.1,"黑色");
    public String color;
    public double ordinal;

    /**
     *枚举的构造方法默认是私有的
     * 所以构造方法只能用private修饰，不能使用其他来进行修饰，不写默认也是private修饰的
     * @param ordinal
     * @param color
     */
    private TestEnum(double ordinal,String color) {
        this.color = color;
        this.ordinal = ordinal;
    }

    public static void main(String[] args) {
        TestEnum[] testEnum = TestEnum.values();
        for(int i = 0; i < testEnum.length; i++) {
            System.out.print(testEnum[i]+" " + testEnum[i].ordinal() + " ");
        }

        System.out.println();

        //TestEnum testEnum1 = TestEnum.valueOf("WHITE");//WHITE是没有与之对应的枚举常量就会报错
        TestEnum testEnum1 = TestEnum.valueOf("RED");//将“RED”这个字符串转化为对应的枚举常量中的类型
        System.out.println(testEnum1);
        System.out.println(RED.compareTo(BLACK));//RED比BLACK大返回正数
        //RED比BLACK小返回负数
        //因为Enum是我们字节写的枚举类默认继承的，Enum类中有compareTo这个方法，所以可以直接进行使用的

    }

    public static void main1(String[] args) {
        TestEnum testEnum = TestEnum.BLACK;
        switch (testEnum) {
            case RED:
                System.out.println("RED");
                break;
            case GREEN:
                System.out.println("GREEN");
                break;
            case BLACK:
                System.out.println("BLACK");
                break;
            default:
                System.out.println("颜色错误");
                break;
        }
    }
}
